package com.kingyun.gpsinspection.purificationservice.dao.mapper.jsm;


import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.CheckboxType;
import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.RadioType;
import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.SingleWorkStep;
import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.SingleWorkStepDataItem;

import java.util.List;

/**
 * @author YuPeng
 */
public interface SingleWorkStepDataItemMapper {
    /**
     * 硬删除数据项
     * @param dataItemId
     * @return
     */
    int deleteByPrimaryKey(String dataItemId);
    /**
     * 新增数据项
     * @param record
     * @return
     */
    int insert(SingleWorkStepDataItem record);
    /**
     * 选择性新增数据项
     * @param record
     * @return
     */
    int insertSelective(SingleWorkStepDataItem record);
    /**
     * 按主键ID获取数据项对象
     * @param dataItemId
     * @return
     */
    SingleWorkStepDataItem selectByPrimaryKey(String dataItemId);
    /**
     * 按步骤ID查询数据项
     * @param stepId
     * @return
     */
    List<SingleWorkStepDataItem> selectByStepId(String stepId);
    /**
     * 按主键ID选择性更新数据项
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(SingleWorkStepDataItem record);
    /**
     * 按主键ID更新数据项
     * @param record
     * @return
     */
    int updateByPrimaryKey(SingleWorkStepDataItem record);
    /**
     * 按数据项ID将status改为1
     * @param dataItemId
     * @return
     */
    int updateStatusById(String dataItemId);
    /**
     * 批量将status改为1
     * @param dataItemId
     * @return
     */
    int updateStatusByIds(List<String> dataItemId);

    /**
     *  非分页查询
     * @param singleWorkStepDataItem
     * @return
     */
    List<SingleWorkStepDataItem> selectByObjectOnList(SingleWorkStepDataItem singleWorkStepDataItem);
    /**
     * 插入单选框类别数据项
     * @param radios
     * @return
     */
    int insertRadios(RadioType radios);
    /**
     * 插入多选框类别数据项
     * @param checks
     * @return
     */
    int insertChecks(CheckboxType checks);

    RadioType selectRadioByDataItem(String dataItemId);

    CheckboxType selectCheckByDataItem(String dataItemId);

    int updateCheckSelect(CheckboxType checks);

    int updateRadioSelect(RadioType radios);

    /**
     * 删除步骤的数据项
     * @param list
     * @return
     */
    int deleteStepDataItem(List<SingleWorkStep> list);
}